package com.dubbo.common.properties;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;


/**
 * 操作properties文件工具类
 * @author chenwei
 * @date 2018年3月15日 上午10:18:06
 */
public class PropertiesUtils {
	
	/**
	 * 根据键名,properties文件名,获取值
	 * <p>此方法适用于获取jar工程中的properties文件</p>
	 * 
	 * @author chenwei
	 * @date 2018年3月15日 上午10:26:22
	 * @param obj 当前类
	 * @param fileName 读取的文件名称 <文件名.后戳名>
	 * @param keyName 文件中存储的键名
	 * @return
	 * @throws IOException
	 */
	public static String getPropertiesValue(Object obj,String fileName,String keyName) throws IOException{
    	Properties prop = new Properties();
    	prop.load(obj.getClass().getResourceAsStream("/"+fileName));
    	return prop.getProperty(keyName);
    }
	/**
	 * 通过io流的方式获取properties文件中的属性
	 * <p>此方法适用于获取web工程中properties文件</p>
	 * 
	 * @author chenwei
	 * @date 2018年6月25日 下午12:06:14
	 * @param obj
	 * @param fileName
	 * @param keyName
	 * @return
	 * @throws IOException
	 */
	public static String getPropertiesValue2(Object obj,String fileName,String keyName) throws IOException{
		 Properties properties = new Properties();
	     // 使用ClassLoader加载properties配置文件生成对应的输入流
	    
		InputStream in = obj.getClass().getClassLoader().getResourceAsStream("/"+fileName);
	     // 使用properties对象加载输入
	     properties.load(in);
	     //获取key对应的value值
	     return properties.getProperty(keyName);
	}
	
}
